This invention relates generally to the area of repairable integrated circuits.
Integrated circuits (ICs) that are configurable to use redundant circuitry to achieve repair of the IC are known. Such configuration may be accomplished via reprogamming configuration elements on the IC. Programmable elements may include dynamic or static RAM, flip-flops, electronically erasable progammable read-only memory (EEPROM) cells, flash, fuse, anti-fuse programmable connections, or other memory elements. Configuration may also be accomplished via one or more externally generated signals received by the IC during operation of the IC. Data represented by such signals may or may not be stored on the IC during operation of the IC. However, configuration for repairing an IC is often accomplished at the factory via one-time programmable elements such as fuses that enable redundant circuitry.
A specific example of an IC that supports configuration is a programmable logic device (PLD). PLDs (also referred to as complex PLDs, programmable array logic, programmable logic arrays, field PLAs, erasable PLDs, electrically erasable PLDs, logic cell arrays, field programmable gate arrays, or by other names) provide the advantages of fixed ICs with the flexibility of custom ICs. PLDs have configuration elements (i.e., programmable elements) that may be programmed or reprogrammed. Placing new data into the configuration elements programs or reprograms the PLD's logic functions and associated routing pathways.
In some examples of prior PLDs with redundant circuitry, logic circuits in the core of the device are organized into rows of circuitry blocks sometimes referred to as logic array blocks (“LABs”; also referred to by other names, e.g., “configurable logic blocks,” or “CLBs”). In some prior implementations, an extra or “redundant” row of core circuitry is provided in a repairable region and if circuitry in one row is defective, routing selection circuitry is provided and programmed such that rows are shifted down from a broken row to the redundant row so that the repairable region of the device can operate as it would have had no rows been defective.
Past implementations have typically permitted repair of defective circuitry in the core areas of the device but not of defective circuitry in the peripheral areas that include input/output circuitry (IOs). However, as IOs become more complex and take up a greater portion of an IC, methods and structures for effecting repair of IO circuitry are needed.